package com.boot2.core.model.dto;

import lombok.Data;

/**
 * @author zhangweilin
 * @description: 上下线
 * @date 2018/12/12
 */
@Data
public class OnOffLine {
    /**
     * 设备类型,如ios,android,yojuLock,yoju-server-yojulife-api等
     */
    private String deviceType;
    /**
     * 设备版本号
     */
    private String version;
    /**
     * 设备id,此id解析自mqtt的clientId,如 yojuLock_200_gatewayid
     */
    private String deviceSn;
    /**
     * 手机号码
     */
    private String mobilePhone;
    /**
     * 动作类型 0：上线  1:下线，默认值为0上线
     */
    private int type = 0;

    /**
     * 上线时连接mqtt时所使用的用户名
     */
    private String userName;

    /**
     * 是否cleanSession
     */
    private String cleanSess;

    /**
     * 下线原因
     */
    private String reason;

    /**
     * 上线所采用的协议
     */
    private Integer protocol;

    /**
     * 上线ip
     */
    private String ipaddress;

    private Integer connack;

    /**
     * 时间戳
     */
    private Long ts;

    /**
     * 是否是遗愿消息
     */
    private Boolean isLwtMessage;

    public OnOffLine(Type type) {
        this.type = type.index;
    }


    public static enum Type {
        /**
         * 上下线动作类型
         */
        Online(0), Offline(1);
        private int index;
        Type(int index) {
            this.index = index;
        }
    }

}
